CAN signals are asynchronous serial communication signals that do not provide for a separate clock signal. Hence, CAN uses an asynchronous transmission that embeds the clock signal in the transmitted serial data stream. A receiving device must then analyze this signal and reconstruct the clock to synchronize the device to the received serial stream. The Controller Area Network (CAN) protocol is an asynchronous serial bus with Non-Return to Zero (NRZ) bit coding designed for fast, robust communications in harsh environments, such as automotive and industrial applications. The CAN protocol allows the user to program the bit rate, the sample point of the bit, and the number of times the bit is sampled. With these features, the network can be optimized for a given application. The specific bit timing of the CAN protocol is discussed in the application note “Understanding Microchip's CAN Module Bit Timing”, AN754, by Pat Richards, published in 2001 which is hereby incorporated by reference.
Timing within the receiving device is generally controlled by an internal or external oscillator of the receiving device. Such oscillators generally provide for limited timing resolution within the device. However, oscillator tolerance in a CAN system needs to be tighter than what is normally achievable with an internal oscillator across operating temperature ranges. This requires CAN modules to be clocked with an external source (crystal, clock, etc.). It is more desirable to have an internal clock source.